package com.theeviljames.base;

public interface IMatrixOps {

	public double[][] times(double[][] a, double[][] b);
	public double[][] dot(double[][] a, double[][] b);
	public double[][] cross(double[][] a, double[][] b);
	public double[][] inverse(double[][] a);
	public double[][] minus(double[][] a, double[][] b);
	public double[][] add(double[][] a, double[][] b);
	public double[][] scalarTimes(double[][] a, double b);
	public double[][] transpose(double[][] a);
	public double length(double[][] a);
	public double[][] normalize(double[][] a);
	public boolean isColumnVector(double[][] a, double s);
	public boolean isRowVector(double[][] a, double s);
	public boolean checkDims(double[][] a, double[][] b);
	public void print(double[][] a);
	public double[][] getIdentityMatrix(int n);
	public double[] diag(double[][] a);
	public double[][] append(double[][] a, double[][] b);
	public double[][] extract(double[][] a, int x1, int y1, int x2, int y2);
	public double[][] scalarDivideRow(double[][] a, int row, double denominator);
}
